#pragma once

#include "NeroEngine\NResourceManagerh.h"

namespace Graphics
{
	class Texture;
}

namespace Graphics
{
template<class T>
void CreateTextureResource(T** resource, const unsigned int handle, const std::string& instanceName, const std::string& filePath)
{
	*resource = MY_NEW(Memory::HID_Rendering,"TextureResource") T(instanceName, filePath);
}

class TextureResourceManager : public Engine::NResourceManager<Graphics::Texture>
{
public:
	TextureResourceManager(void);
	virtual ~TextureResourceManager(void);
	static void Initialize();
	static void Deinitialize();
	static TextureResourceManager* GetInstance();
private:
	static TextureResourceManager* sInstance;
};
}